FIG. 1 depicts traditional data flows 1, 2, 3 for camera related functions within a computing system. In many current computing systems, the camera 101 has little or no processing intelligence. As a consequence, complex functions of the camera 101 itself, or, applications that make use of the camera's images are typically executed on the computing system's general purpose processing core(s) 105 (such as one or more applications processors).
As observed in FIG. 1, the execution of these functions/applications on the processing core(s) 105 results in cumbersome movements of large amounts of data within the computing system as well as feedback paths from the core(s) 105 back to the camera 101 having long latencies. The overall inefficiency also corresponds to increased traffic congestion and power consumption by the system.
For example, consider an auto-focus routine that is performed on core(s) 105. Here, entire frames of image data are directed 1 from the camera 101 through an I/O control hub 102 and memory controller 103 before being written into system memory 104. In order for the core(s) 105 to execute the auto-focus routine the image data is called up 2 to the core(s) for processing from system memory 104. Here, large amounts of data are moved along data paths 1 and 2 resulting in long latencies, increased power consumption and traffic congestion within the system.
Additionally, when the auto-focus routine completes its analysis and the core(s) 105 attempt to communicate a next auto-focus command to the camera 101, the command may progress 3 through the memory controller 103 and/or I/O control hub 102 before finally reaching the camera 101. Along the way the command may be queued at different locations within the system. Thus, additional latency is observed from the perspective of the camera 101 from the time the image data is first sent 1 to the time it finally receives a feedback command 3 based on the image data.